To protect the data and programs that they store, microprocessor cards can use a “kill-card” flag. If the card detects an event that it considers to be an attack, it sets this flag irreversibly to a given value and this flag having this value prevents subsequent operation of the microprocessor. This flag is stored in non-volatile memory and setting the flag to the given value involves effecting a write operation in non-volatile memory (by the execution of a so-called “Killcard” function).
Sophisticated attacks are based on an analysis of execution in order to detect the execution of a protection, or counter-measure, function launched by a microcircuit in order to interfere with the execution of that protection function by a physical action on the microcircuit (by interfering with the clock frequency supplied to the microcircuit, by laser action on an area of the circuit, etc.) or to prevent the execution of this protection function (for example by cutting off the power supply of the microcircuit). Thus detection of execution of the protection function is a precursor to interfering with it or inhibiting it. This enables the attacker to succeed in their attack by rendering the protection function inoperative or weakening it.
Some of these sophisticated attacks use power analysis to determine the operation of the microprocessor. In particular, write operations in non-volatile memory impose a very much greater power consumption than arithmetic operations in random-access memory. Power analysis therefore exploits the fact that different operations consume different amounts of electricity. These different operations thus have different signatures in terms of power consumption. The fact that a write operation in non-volatile memory is very distinctive, because of its high power consumption, enables the attack to prevent the flag taking the given value that prohibits subsequent use of the microprocessor. As soon as the signature of this write operation is detected by the attack, the power supply of the microprocessor is cut off and the write operation is not completed.